package cn.alpha.common.springmvc;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.springframework.format.datetime.DateFormatter;
import org.springframework.util.StringUtils;

public class CustomDateFormatter extends DateFormatter 
{
	@Override
	public Date parse(String text, Locale locale) throws ParseException
	{
		try{
			return super.parse(text, locale);
		}catch(ParseException e){
			if(StringUtils.isEmpty(text))
				throw e;
			if(text.length()==10)
				return new SimpleDateFormat("yyyy-MM-dd").parse(text);
			else if(text.length()==19)
				return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(text);
			else if(text.length()==16)
				return new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(text);
			throw e;
		}
	}
}
